import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JPanel;


@SuppressWarnings("serial")
public class Linha extends JPanel {
	
	public int x1, y1, x2, y2;
	public boolean esquerda;
	Linha (int x1, int y1, int x2, int y2, boolean esquerda) {
		this.esquerda = esquerda;
		// coordenadas do nó pai		
		this.x1 = x1 + 15;
		this.y1 = y1 + 35;
		// coordenadas do nó filho
		this.x2 = x2 + 15;
		this.y2 = y2 + 1;
		// se o filho estiver à esquerda
		if(esquerda)
			setBounds (this.x2, this.y1, this.x1 - this.x2, this.y2 - this.y1);
		else	
			setBounds (this.x1,this.y1, this.x2 - this.x1, this.y2 - this.y1);
		setBackground(Color.WHITE);
	}
	
	@Override
	public void paint (Graphics g) {
		super.paint(g);
		// Cópia g para g2.
		Graphics2D g2 = (Graphics2D) g;
		g2.setColor(Color.BLACK);
		// Aumenta a Largura da linha e a deixa mais arredondada
		g2.setStroke(new BasicStroke(1.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
		
		if(esquerda)
			g2.drawLine(x1 - x2, 0, 0, y2 - y1);
		else
			g2.drawLine(0, 0, x2-x1,y2 - y1);
		updateUI();
	}
}